package shell

import (
	"bytes"
	"compress/gzip"
	"fmt"
	"io"
	"strings"
)

func bindata_read(data []byte, name string) ([]byte, error) {
	gz, err := gzip.NewReader(bytes.NewBuffer(data))
	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	gz.Close()

	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	return buf.Bytes(), nil
}

var _csingo_update = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x74\x54\xdd\x4e\x1b\x47\x14\xbe\x9f\xa7\x38\x0c\x2b\x05\xa4\x3a\x56\x73\x09\x72\x55\x9a\x56\x8d\xd4\x56\x45\x14\xf5\x86\xa0\xb0\xec\x1c\xdb\x23\xaf\x67\xb6\xb3\x03\x6e\x04\x91\xd2\x8a\xdf\x24\xd8\xa8\x15\x4e\x93\x82\xd4\x5c\xa0\xa4\x51\x00\xdf\x14\x1c\x5b\xc9\xd3\xec\xec\x3a\x6f\x51\xcd\xae\x6d\x5c\xb9\xd9\x0b\xef\x99\xf3\xef\xef\xfb\x66\x27\x27\xf2\xab\x5c\xe4\x57\xdd\xb0\x4c\x48\x88\x1a\x72\x48\x08\xe3\xaa\xb0\x12\xd4\xd8\x0a\x21\xb5\x32\xf7\x11\x4a\xa8\x65\xa0\x43\xa0\x33\xeb\x33\xab\x33\x14\x64\xa0\x67\x81\x49\x02\xe0\xb9\x21\x82\x23\x03\x0d\x5c\x10\x00\x80\xf5\x69\x58\x47\x15\x72\x29\x0a\xce\xf7\xf3\x8b\x73\x0b\x5f\xc3\xec\x2c\x01\xc0\xd0\xf5\x08\x93\x02\x09\x99\x84\x5e\xfd\xca\x34\x9a\x30\x07\xc9\x9f\xe7\xe6\xdd\x51\xd4\x7e\x9c\x3c\xdf\x8a\xf7\x1f\xc6\xc7\xfb\xe6\xec\x30\x73\x9a\xc3\x83\xe4\x65\x8b\x4c\x02\xe3\x0a\x3d\x2d\x15\xc7\xb0\x30\x45\xbd\xb9\xea\x4f\x01\x9d\x26\xff\xe7\x05\xea\xdd\x96\xd5\xaa\x2b\xd8\xc0\x94\x22\xb3\x44\x91\x97\xfa\x96\xc6\x9f\xf5\xc0\x54\xd2\xf7\x51\xd9\xd3\x97\x5f\xd8\xdf\xaf\x94\x92\xe9\xf1\x0e\xfa\x41\x16\xb8\xb3\xb8\x38\x7f\xdb\xe7\x28\xd2\xa2\x6f\xdc\x62\xc5\xb5\xc6\xb7\x32\xed\xf7\x1d\x67\xcc\xc7\x9a\xab\xd0\x9e\xe6\x95\xd4\xd2\x1a\x0b\xc8\x78\x98\x19\x45\x1f\x3d\xcd\xb3\x3d\x16\x30\x0c\xa4\x08\xd3\xdc\x85\xc0\xb3\xaf\x1f\x50\xad\x67\x83\x7e\x74\x7d\xce\x5c\x2d\x15\x9d\xb6\x10\x99\xbd\x13\xf3\xf2\xb1\x79\xd2\x8c\xda\x0f\xa3\xf6\xeb\xe4\xef\x8e\x85\xe8\xa8\x95\x74\xb7\xe2\x93\x53\x73\xf6\x87\xf9\xf5\xd5\x35\x56\x8d\x47\x66\xfb\x32\x7a\x7f\xd2\xfb\xa7\x19\x1f\xb5\x08\x43\xcf\x77\x15\x42\x6e\x0e\x18\x06\x28\x18\x0a\xef\xfe\x3d\x4f\xae\x09\x1d\xda\xe6\x1f\x7e\x39\x30\xf5\x9d\xf8\xa2\x11\xb5\x5f\x5f\x37\x79\x7b\xd9\x3b\x7f\x91\x9c\x3f\xfd\x4f\xab\xa2\x54\x43\x06\xee\x03\x17\x40\x9d\x8d\x11\xec\x97\x3e\x5f\x7e\x40\xfb\x5a\x00\x98\x04\xb3\xf3\xcc\x6c\x9f\x26\xfb\x7b\xf1\xf1\x1b\xd3\xb8\x4a\xbd\xbc\x08\x4b\x40\x9d\xbe\x2c\x28\x4c\x14\x80\x52\x58\x9e\x05\x5d\xc6\x4c\x34\xf6\x41\xaf\x2c\x61\x90\x04\x9f\x81\xc3\xb8\xca\x3b\xc3\xd1\xf9\x7e\x64\xf0\x4e\xeb\x8a\x9c\xf4\xe7\xf6\x2e\xba\x56\x51\x25\x79\xb3\x2a\x19\xc4\xcd\xdd\xa8\x7b\x99\x3c\xdf\x32\x3b\xdb\xe6\xfc\x6d\x9a\xe3\x59\xea\x85\x2e\x38\x53\x9e\xab\x81\x8e\x74\xce\x8a\x2c\xec\xfd\x5e\x29\x0a\xbd\x8b\xd3\x6b\x68\x8e\x5f\x59\x50\xba\xcd\xa1\x27\x6a\x9f\x45\xef\x8e\xa3\x76\x27\x43\xca\xec\x76\x92\x7a\xcb\x32\xf4\xe6\x85\x45\x2d\x1b\xb8\x26\x74\x61\xa5\xa4\x30\x00\x5a\xe2\x1a\xf1\xa6\x27\xab\x79\x2f\xe4\xa2\x24\x29\x8c\x2d\x00\x9b\x50\xf3\x20\xe7\xaf\x0c\xf6\x30\xad\x9d\x8f\x31\x1c\x5f\x75\xcd\xa3\xbf\xcc\x5e\x2b\x53\x44\xd4\x3e\x4b\x6b\xc6\xc8\x5e\x1a\xf9\x9f\x74\xb9\xe0\xa4\xde\xe1\x35\x8c\x9f\xec\x0f\x3b\x7e\x78\x76\x60\x3a\x8d\xb8\xfe\x9b\xd9\x7b\x3a\x9c\x4a\x42\xa9\x34\xb2\x7b\xa3\x97\xcd\x99\xb2\x92\xa8\xe0\x40\x0c\x13\xe3\x43\x07\x9a\xc8\x38\xa5\x8e\x4d\x76\x36\xc6\xf3\x6c\xa0\x9f\x2a\x10\x36\xc1\x4e\x83\x9c\xa8\xdc\xfa\xe4\x16\x6c\x82\x5b\xab\xc0\x8d\x8d\x40\x71\xa1\xc1\xf9\xf4\xc1\x8d\xf4\x5a\xf4\xde\xff\x6e\x76\x3b\x76\xcd\x4e\xc3\x1c\xd6\x2d\xc5\x23\x1f\x8c\x54\xad\x5c\x63\xd5\xee\xe6\x8c\x2f\x3f\x14\x6a\xba\x58\x0e\x81\xde\x15\x77\x45\x61\xf8\x80\x93\x16\x5f\x3b\x68\xc6\x24\xeb\xab\xd1\x46\x53\x4f\xd5\xad\x20\x04\x6b\x61\x39\xc5\xf2\xdf\x00\x00\x00\xff\xff\x28\xe9\xf8\x0f\x45\x05\x00\x00")

func csingo_update() ([]byte, error) {
	return bindata_read(
		_csingo_update,
		"csingo-update",
	)
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	cannonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[cannonicalName]; ok {
		return f()
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() ([]byte, error){
	"csingo-update": csingo_update,
}
// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//     data/
//       foo.txt
//       img/
//         a.png
//         b.png
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		cannonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(cannonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for name := range node.Children {
		rv = append(rv, name)
	}
	return rv, nil
}

type _bintree_t struct {
	Func func() ([]byte, error)
	Children map[string]*_bintree_t
}
var _bintree = &_bintree_t{nil, map[string]*_bintree_t{
	"csingo-update": &_bintree_t{csingo_update, map[string]*_bintree_t{
	}},
}}
